/* 
   lecture.h
*/

/*Librairies*/
#include <fstream>
#include <string> 
#include <iostream>
#include <vector>
#include <sstream>
#include "lecture.h"

using namespace std;

/* Fonctions*/
//determine si le fichier est lisible
bool is_readable( std::ifstream &fichier ) 
{ 
    return !fichier.fail(); 
} 

//affiche si le fichier est lisible
bool Fichier_lisible(std::ifstream &fichier)
{
	bool bool_ouvert;//bool de resite d'ouverture de fichier
	if ( is_readable( fichier )  ) 
    	{ 
		bool_ouvert = true;
    	}	 
    	else 
    	{
		bool_ouvert = false;
	} 
	return bool_ouvert;
}

//stransforme une ligne en un vecteur d'entier
void Ligne_vers_vecteur(int &longeur_vector, std::string ligne, vector<int> &nombre_extrait)
{
	istringstream iss(ligne); //creation d'un flux, contenant la ligne a separer
	string mot; //creation d'un string contenant les carractéres extrait
	int mot_int;

	while (std::getline(iss,mot,' '))
	{
		istringstream(mot)>>mot_int; //creer un flux, et le cast en int
		nombre_extrait.push_back(mot_int); //ajoute "mot" au vecteur
		longeur_vector++;
	}


}

//extrait la ligne et la met dans un vecteur
bool Extraction_ligne(std::ifstream &fichier, vector<int> &nombre_extrait, int &longeur_vector)
{
	bool bool_ligne =true;//bool de reusite de lecture d'une ligne
	std::string ligne; // variable contenant chaque ligne lue
	
	
        if(std::getline( fichier, ligne )) //extrait une ligne du fichier
	{
		bool_ligne = true;
	}
	else
	{
		bool_ligne = false;
	}	
        std::cout << ligne << std::endl;// afficher la ligne à l'écran
	Ligne_vers_vecteur(longeur_vector,ligne, nombre_extrait);
	return bool_ligne;
}




/*fonction principal*/
int Lecture_Ligne(std::ifstream &fichier, vector<int> &nombre_extrait)
{

	/*Varriables*/
	//vector<int> nombre_extrait; //creation d'un tableau de vecteurs contenant les nombres extrait
	int longeur_vector = 0;
	int variable_sortie =0;
	/*code*/
	
	//std::ifstream fichier("fichier.txt"); //ouverture du fichier
	
	if(Fichier_lisible(fichier)) //verification de l'integrité du fichier
	{
		variable_sortie = 0;
	}
	else
	{
		variable_sortie = -2;
	}

	if(Extraction_ligne(fichier, nombre_extrait, longeur_vector)) //extraction ligne -> vector
	{
		variable_sortie = 0;
	}
	else variable_sortie = -1;


		
	for(int i=0;i<longeur_vector;i++)//affiche le vecteur
	{
		cout<<nombre_extrait[i]<<endl;
	}
	
	return variable_sortie;
}

